/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.bean;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Zully
 */
@Entity
@Table(name = "detalle_control_reencauche")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "DetalleControlReencauche.findAll", query = "SELECT d FROM DetalleControlReencauche d"),
    @NamedQuery(name = "DetalleControlReencauche.findById", query = "SELECT d FROM DetalleControlReencauche d WHERE d.id = :id"),
    @NamedQuery(name = "DetalleControlReencauche.findByPrecio", query = "SELECT d FROM DetalleControlReencauche d WHERE d.precio = :precio"),
    @NamedQuery(name = "DetalleControlReencauche.findByObservacionesRecepcion", query = "SELECT d FROM DetalleControlReencauche d WHERE d.observacionesRecepcion = :observacionesRecepcion"),
    @NamedQuery(name = "DetalleControlReencauche.findByEstado", query = "SELECT d FROM DetalleControlReencauche d WHERE d.estado = :estado"),
    @NamedQuery(name = "DetalleControlReencauche.findByFechaInsercionActualizacion", query = "SELECT d FROM DetalleControlReencauche d WHERE d.fechaInsercionActualizacion = :fechaInsercionActualizacion")})
public class DetalleControlReencauche implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "precio")
    private Double precio;
    @Column(name = "observaciones_recepcion")
    private String observacionesRecepcion;
    @Basic(optional = false)
    @Column(name = "estado")
    private boolean estado;
    @Basic(optional = false)
    @Column(name = "fecha_insercion_actualizacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInsercionActualizacion;
    @JoinColumn(name = "id_neumatico", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Neumaticos idNeumatico;
    @JoinColumn(name = "id_nuevo_tipo_banda", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private TiposBandaNeumatico idNuevoTipoBanda;
    @JoinColumn(name = "id_nuevo_tipo_piso", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private TipoPiso idNuevoTipoPiso;
    @JoinColumn(name = "id_control_reencauche", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private ControlReencauche idControlReencauche;
    @Column(name = "num_factura")
    private String numFactura;
    @Column(name = "fecha_recepcion")
    @Temporal(TemporalType.DATE)
    private Date fechaRecepcion;
    @Basic(optional = false)
    @Column(name = "por_garantia")
    private boolean porGarantia;
    
    public DetalleControlReencauche() {
    }

    public DetalleControlReencauche(Integer id) {
        this.id = id;
    }

    public DetalleControlReencauche(Integer id, boolean estado, Date fechaInsercionActualizacion) {
        this.id = id;
        this.estado = estado;
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Double getPrecio() {
        return precio;
    }

    public void setPrecio(Double precio) {
        this.precio = precio;
    }

    public String getObservacionesRecepcion() {
        return observacionesRecepcion;
    }

    public void setObservacionesRecepcion(String observacionesRecepcion) {
        this.observacionesRecepcion = observacionesRecepcion;
    }

    public boolean getEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public Date getFechaInsercionActualizacion() {
        return fechaInsercionActualizacion;
    }

    public void setFechaInsercionActualizacion(Date fechaInsercionActualizacion) {
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
    }

    public Neumaticos getIdNeumatico() {
        return idNeumatico;
    }

    public void setIdNeumatico(Neumaticos idNeumatico) {
        this.idNeumatico = idNeumatico;
    }

    public TiposBandaNeumatico getIdNuevoTipoBanda() {
        return idNuevoTipoBanda;
    }

    public void setIdNuevoTipoBanda(TiposBandaNeumatico idNuevoTipoBanda) {
        this.idNuevoTipoBanda = idNuevoTipoBanda;
    }
    
    public ControlReencauche getIdControlReencauche() {
        return idControlReencauche;
    }

    public void setIdControlReencauche(ControlReencauche idControlReencauche) {
        this.idControlReencauche = idControlReencauche;
    }

    public TipoPiso getIdNuevoTipoPiso() {
        return idNuevoTipoPiso;
    }

    public void setIdNuevoTipoPiso(TipoPiso idNuevoTipoPiso) {
        this.idNuevoTipoPiso = idNuevoTipoPiso;
    }

    public String getNumFactura() {
        return numFactura;
    }

    public void setNumFactura(String numFactura) {
        this.numFactura = numFactura;
    }

    public Date getFechaRecepcion() {
        return fechaRecepcion;
    }

    public void setFechaRecepcion(Date fechaRecepcion) {
        this.fechaRecepcion = fechaRecepcion;
    }
    
    public boolean getPorGarantia() {
        return porGarantia;
    }

    public void setPorGarantia(boolean porGarantia) {
        this.porGarantia = porGarantia;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DetalleControlReencauche)) {
            return false;
        }
        DetalleControlReencauche other = (DetalleControlReencauche) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.camachosanchez.bean.DetalleControlReencauche[ id=" + id + " ]";
    }
    
}
